"""
一、动手纠错
1、下面程序的功能是：给定一下学生姓名和成绩，输出所有不及格的学生姓名和成绩，请找出错误并修改验证
正确如下：
"""
students = [
    ['赵', 60],
    ['钱', 34],
    ['孙', 89],
    ['李', 56],
    ['周', 90],
]
for student in students:
    if student[1] < 60:
        name = student[0]
        score = student[1]
        print('姓名：',name,'\t','成绩：',score)
        """
        2、下面程序的功能是：使用字典存储多个英文单词及其译文，输入英文，输出该单词的译文，请找出错误并修改验证
        正确如下：
        """
        number = int(input('请输入将要存入字典的英文单词个数：'))
        word_explain = {}
        for i in range(number):
            word, explain = input('请输入英文：'), input('请输入对应的译文：')
            word_explain[word] = explain
        new_word = input('请输入要翻译的英文单词：')
        if new_word in word_explain:
            print(word_explain[new_word])
        else:
            print('no found')
            """
            二、程序填空
            （1）下面程序的功能是：将字符串'1a2b3c56ghjik'中的数字和字母分开并输出，然后将所有字母组合程字符串，转换成大写后输出，请将正确答案写在横线处
            """
            s = '1a2b3c56ghjik'
            for c in s:
                if c >= '0' and c <= '9':
                    print(c, end=' ')
            print()
            s1 = ''
            for c in s:
                if c >= 'a' and c <= 'z':
                    s1 += c
                    print(c, end=' ')
            print('\n', s1.upper())
            """
            （2）下面程序的功能是：合并两个元组，将合并后元组中的元素按照字符串的大小升序排列，请将正确答案写在横线处
            """
            word1 = ('music', "piano", "singing")
            word2 = ("sports", 'football', 'high_jump')
            words = word1 + word2
            print(words)
            words_list = list(words)
            words_list.sort()
            new_words = tuple(words_list)
            print(new_words)
            """
            三、编程训练
            （1）表4-7为某班学生的成绩，请通过已经定义好的模板"{}同学，你的考试成绩是：语文{}，英语{}，数学{}，总成绩{}，特此通知！"输出姓名和成绩
            姓名          语文          英语          数学
            张三          90            87           78
            李四          93            87           67
            王五          88            90           95
            """
            std = [
                ['张三', 90, 87, 78],
                ['李四', 93, 87, 67],
                ['王五', 88, 90, 95]
            ]
            mod = '{}同学，你的考试成绩是：语文{}，英语{}，数学{}，总成绩{}，特此通知！'
            for st in std:
                cnt = 0
                for i in range(1, 4):
                    cnt += st[i]
                print(mod.format(st[0], st[1], st[2], st[3], cnt))
                """
                （2）编程实现，500个人围成一个圈，从1开始数，每数到3的倍数的人离开圈子，循环往复直到最后只剩一个人，输出剩下的这个人原来在圈中的位置（编号）
                """
                joseph = []
                for i in range(1, 501):
                    joseph.append(i)
                index = 0
                count = 0
                while len(joseph) > 1:
                    count += 1
                    if count % 3 == 0:
                        joseph.pop(index)
                        index -= 1
                    index += 1
                    if index == len(joseph):
                        index = 0
                print(joseph)
                """
               （3） 编程实现，使用列表保存学生的信息，包括姓名、性别、年龄，然后使用字典保存3个班级的学生信息，每个班级3个学生，以班级名为键，以存放学生信息的列表为值，最后根据输入的班级名输出该班级的学生信息
                """
                class1 = [
                    ['张三丰', '男', 7],
                    ['杨过', '男', 9],
                    ['郭靖', '女', 8]
                ]
                class2 = [
                    ['刘备', '男', 10],
                    ['孙尚香', '女', 8],
                    ['诸葛亮', '男', 9]
                ]
                class3 = [
                    ['许明明', '女', 11],
                    ['刘能', '男', 12],
                    ['马三', '男', 10]
                ]
                grade = {}
                grade['三年级一班'] = class1
                grade['三年级二班'] = class2
                grade['四年级一班'] = class3
                class_name = input('请输入班级名：')
                print(class_name, '的学生信息：')
                for key in grade.keys():
                    if key == class_name:
                        for student in grade[key]:
                            for info in student:
                                print(info, end=' ')
                            print()